#include "AddressPort.h"

void address_port_init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; 
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_8; //
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
}

u8   ReadAddress(void)
{   
	  u8  address;
	  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);      /*??SWD ??JTAG*/
		address=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12); 
		address=(address<<1)|GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
		address=(address<<1)|GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14);
		address=(address<<1)|GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15);
		address=(address<<1)|GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8);
		address=(address<<1)|GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_11);
		//address=~address;
		address=address&0x3f;
	  return address;
}

